import { reqAddToCart, reqCartList } from "@/api/cart"
import { reqGoodsInfo } from "../../../api/goods"
// 导入创建的 behavior
import { userBehavior } from '../../../behaviors/userBehaviors'

// pages/goods/detail/index.js
Page({
    behaviors: [userBehavior],
    // 页面的初始数据
    data: {
        goodsInfo: {}, // 商品详情
        show: false, // 控制加入购物车和立即购买弹框的显示
        count: 1, // 商品购买数量，默认是 1
        blessing: '', // 祝福语
        buyNow: 0,   // 控制是加入购物车，还是立即购买。0：加入购物车，1：立即购买
        allCount: ''    // 商品的购买数量
    },

    // 加入购物车
    handleAddcart() {
        this.setData({
            show: true,
            buyNow: 0
        })
    },

    // 立即购买
    handeGotoBuy() {
        this.setData({
            show: true,
            buyNow: 1
        })
    },

    // 点击关闭弹框时触发的回调
    onClose() {
        this.setData({
            show: false
        })
    },

    // 监听是否更改了购买数量
    onChangeGoodsCount(event) {
        this.setData({
            count: Number(event.detail)
        })
    },

    // 获取商品详情的数据
    async getGoodsInfo() {
        const { data: goodsInfo } = await reqGoodsInfo(this.goodsId)
        this.setData({
            goodsInfo
        })
    },

    // 全屏预览图片
    previewImage() {
        wx.previewImage({
          urls: this.data.goodsInfo.detailList,
        })
    },

    // 弹窗的确定按钮触发的事件处理函数
    async handlerSubmit() {
        // 解构相关的数据
        const { token, count, blessing, buyNow } = this.data
        // 获取商品ID
        const goodsId = this.goodsId

        // 判断用户是否进行了登录，如果没有登录，需要跳转到登录页面
        if (!token) {
            wx.navigateTo({
              url: '/pages/login/login',
            })
            return
        }

        // 区分处理加入购物车，立即购买
        if (buyNow === 0) {
            // 加入购物车
            const res = await reqAddToCart({ goodsId, count, blessing })
            if (res.code === 200) {
                wx.toast({ title: '加入购物车成功' })
                // 加入购物车成功以后，需要重新计算购物车商品的购买数量
                this.getCartCount()
                this.setData({
                    show: false
                })
            }
        } else {
            // 立即购买
            wx.navigateTo({
              url: `/modules/orderPayModule/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`,
            })
        }
    },

    async getCartCount() {
        // 使用token来判断用户是否进行了登录
        // 如果没有token，说明用户没有登录，就不执行后续的逻辑
        if (!this.data.token) {
            return
        }

        // 获取购物车列表的数据 
        const res = await reqCartList()
        // 判断购物车中是否存在商品
        if (res.data.length !== 0) {
            // 累加得出商品的购买数量
            let allCount = 0
            res.data.forEach((item)=>{
                allCount += item.count
            })
            this.setData({
                // info 属性的值要求是字符串类型
                // 而且如果购买的数量大于99，页面上需要展示99+
                allCount: allCount > 99 ? '99+' : allCount + ''
            })
        }
    },

    onLoad(options) {
        // 接收传递的商品ID，并且将商品ID挂载到this上面
        this.goodsId = options.goodsId

        // 调用商品详情的数据方法
        this.getGoodsInfo()

        // 计算购物车商品数量
        this.getCartCount()
    },
    // 转发功能，转发给好友、群聊
    onShareAppMessage() {
        return {
            title: '所有的怦然心动，都是你',
            path: '/modules/goodModule/pages/goods/list/list',
            imageUrl: '../../../../../assets/images/love.jpg'
        }
    },
    // 能够把小程序分享到朋友圈
    onShareTimeline() {

    }
})